#pragma once
#include <shared_mutex>
namespace boltDB {

/**
 * 对于std::mutex的简单封装，在实际的数据库系统中，为了性能需求应该自己实现一个
 */
class RWMutex {
 public:
  
  void WLock() { mutex_.lock(); }

  void WUnlock() { mutex_.unlock(); }

  void RLock() { mutex_.lock_shared(); }

  void RUnlock() { mutex_.unlock_shared(); }

 private:
  std::shared_mutex mutex_;
};

}  // namespace bustub